This invention relates to variable rate digital communication systems, and more particularly to the determination of the rate in a such systems.
In code division multiple access (CDMA) communication systems, a transmitting system transmits data to a receiving system. Within the transmitting system, a data source sends a stream of data frames to a Cyclic Redundancy Check (CRC) and tail bit generator. The generator generates a set of CRC bits for each data frame, which are attached to the data frame for use in error detection by the receiving system. The data frames are then sent to an encoder which encodes the data as symbols. The symbols are then interleaved, modulated, and transmitted as a signal to the receiving system. Within the receiving system, the stream of symbols are demodulated, combined with the symbols of the same signal which travelled along a different propagation path, and de-interleaved. The resulting re-ordered stream of symbols is then passed to a decoder, which outputs a decoded data frame and performs a CRC check.
If the data being transmitted is voice data, a user does not require continual full use of the system. For example, there will be times when the user is not speaking. Therefore variable transmission rates are often used to reduce the number of symbols transmitted, thereby saving power. For example, in IS-95 networks four transmission rates are used. When a user is speaking, the transmission rate is at a full rate. When a user is not speaking, the transmission rate is at an eighth rate, equal to one eighth of the full rate. During transition between full rate and eighth rate the data may be transmitted at a half rate (equal to one half of the full rate) and at a quarter rate (equal to one quarter of the full rate).
In order to accurately decode the transmitted signal, the decoder must know the rate at which the symbols were actually transmitted. However this information is not transmitted with the symbols, and a processor within the receiving system must attempt to determine the actual transmission rate. There are three possible results when attempting to determine the transmission rate. The processor may determine the correct rate, may determine an incorrect rate, or may be unable to determine a rate. If the processor is unable to determine a rate the symbols are dropped, resulting in an erasure of the decoded data frame. It may be preferable to erase a decoded data frame if the processor is not confident enough that it has determined the actual transmission rate, because sending a decoded data frame based on an incorrect transmission rate can result in the receiving user being exposed to unpleasant noise.
Error detection metrics can be used to assist in the attempt to determine the correct rate, as disclosed in U.S. Pat. No. 5,566,206 issued to Butler et al. on Oct. 15, 1996. A decoder is used for each possible transmission rate to generate a decoded frame for each possible transmission rate, each of which is stored in a buffer. Error detection techniques are then applied to each decoded frame to determine various error detection metrics for each rate. Possible error detection metrics are the CRC status, the Symbol Error Rate (SER), and the Yamamoto value. A comparison of the error detection metrics allows the processor to make a decision as to which of the possible rates was most likely used in the transmission. If a decision is made, the processor signals the appropriate buffer and the decoded frame corresponding to that rate is passed on to the receiving user. Otherwise, if the error correction parameters are such that the processor cannot make a decision as to which is the correct rate, then the data frame is erased.
U.S. Pat. No. 5,751,725 issued to Chen on May 12, 1998 discloses one such method of determining the rate in a variable transmission rate system. The processor determines whether the CRC statuses for exactly two of the decoded frames are positive. If so, the processor compares the SERs for these two decoded frames after applying a linear function to one of the two SERs. The parameters of the linear function are predetermined empirically, and are necessary to correct for normalization of the SERs and for the differences in probability of a positive CRC status for different transmission rates. The comparison of the SERs reveals which of the two rates is more likely to be the actual transmission rate. The SER for the decoded frame whose rate is most likely to be the actual transmission rate is then compared with a maximum threshold SER for that rate (predetermined empirically based on the desired performance). If the SER is below the maximum threshold, then the processor assumes that the determined rate is the actual transmission rate and signals the buffer to send the corresponding decoded frame to the receiving user. If the SER is above the maximum threshold, then the processor is not confident that it has found the actual transmission rate. An erasure is signalled, and no decoded frame is sent to the receiving user.
If the CRC status of exactly one decoded frame is positive, then the processor begins by assuming that the rate corresponding to that frame is most likely to be the actual transmission rate but must then reassure itself that the rate is most likely the actual transmission rate. The processor compares the SER of the decoded frame for which the CRC status was positive with a maximum threshold SER for the rate corresponding to the decoded frame. If the SER of the frame is above the maximum threshold SER, then the frame is erased. If the SER of the frame is below the maximum threshold SER, then this is additional confirmation that this decoded frame was decoded using the correct rate. However, as further checks the processor compares the SERs of each of the other decoded frames with a minimum threshold SER. A minimum threshold SER is determined empirically for each combination of two different rates, so in a communication system using four possible rates there are twelve minimum threshold SERs. If the SER of any of the other decoded frames is less than the minimum threshold SER, then it is quite possible that the rate of the other decoded frame was the actual transmission rate. The uncertainty as to which of the two rates (the rate indicated by the positive CRC status or the rate indicated by the low SER) is most likely to be the actual transmission rate results in an erasure of the data frame by the processor.
One disadvantage of the method disclosed in U.S. Pat. No. 5,751,725 is that it compares absolute SERs with predetermined minimum thresholds. Under certain conditions the signal to noise ratio of the transmitted signal can be particularly high. When this occurs the SERs determined for more than one transmission rate may be low and there is a good chance that more than one will fall below the minimum relevant threshold SER. The method disclosed in U.S. Pat. No. 5,751,725 would then result in a high number of unnecessary erasures. A method of determining the transmission rate which does not result in these unnecessary erasures would provide more a complete signal to the receiving user.
The present invention provides a method for determining at a receiving system an actual transmission rate in a communication system having a transmitting system which transmits a frame to the receiving system. The frame is transmitted at the actual transmission rate which can be one of several possible transmission rates. The receiving system generates an error check value for each possible transmission rate and an error rate value for each possible transmission rate. If exactly two error check values are positive, one error check value having a corresponding first error check rate and the other error check value having a corresponding second error check rate, a difference between the first error rate value and the second error rate value is calculated. If the difference is less than a first predetermined threshold, a signal is generated to indicate that the actual transmission rate is the possible transmission rate corresponding to the first error rate value. Otherwise, if the difference between the first error rate value and the second error rate value is greater than a second predetermined threshold a signal is generated to indicate that the actual transmission rate is the possible transmission rate corresponding to the second error rate value. If the difference between the first error rate value and the second error rate value is greater than the first predetermined threshold and less than the second predetermined threshold, a signal is generated to erase the frame.
If exactly one of the error check values is positive, then the error rate value corresponding to the error check value which was positive is compared with each of the error rate values corresponding to the error check values which were negative. If each difference between the error rate value corresponding to the error check value which is positive and an error rate value corresponding to an error check value which is negative is less than a predetermined threshold particular to the two possible transmission rates corresponding to the error check value which was positive and the error check value which was negative, a signal is generated to indicate that the actual transmission rate was the possible transmission rate corresponding to the error check value which was positive. Otherwise, a signal is generated to erase the frame.
If other than exactly two of the error check values are positive and other than exactly one of the error check values is positive, a signal is generated to erase the frame.
This method determines erasures by comparing the differences between error rate values (most likely SERs) with predetermined thresholds rather than comparing the error rate values themselves with predetermined thresholds. This results in fewer unnecessary erasures.
The steps carried out if exactly two error check values (most likely CRCs) is positive and the steps carried out if exactly one error check value is positive can be implemented separately and still result in fewer unnecessary erasures.